//********************************************************************************************************
// Product Name: MapWindow.dll Alpha
// Description:  The basic module for MapWindow version 6.0
//********************************************************************************************************
// The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); 
// you may not use this file except in compliance with the License. You may obtain a copy of the License at 
// http://www.mozilla.org/MPL/ 
//
// Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
// ANY KIND, either expressed or implied. See the License for the specificlanguage governing rights and 
// limitations under the License. 
//
// The Original Code is from MapWindow.dll version 6.0
//
// The Initial Developer of this Original Code is Ted Dunsford. Created 7/24/2008 4:09:06 PM
// 
// Contributor(s): (Open source contributors should list themselves and their modifications here). 
//
//********************************************************************************************************

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using MapWindow;
using MapWindow.Main;
using MapWindow.Data;
using MapWindow.Drawing;
using MapWindow.Geometries;
using System.Windows.Forms;

namespace MapWindow.DirectX
{


    /// <summary>
    /// MouseMoveArgs
    /// </summary>
    public class MouseMoveArgs : EventArgs
    {
        #region Private Variables

        private double _x;
        private double _y;
        private double _z;
        private int _clicks;
        private MouseButtons _buttons;
        private int _delta;


        #endregion

        #region Constructors

        /// <summary>
        /// Creates a new instance of the MouseMoveArgs
        /// </summary>
        /// <param name="inX"></param>
        /// <param name="inY"></param>
        /// <param name="inZ"></param>
        /// <param name="inClicks"></param>
        /// <param name="inButtons"></param>
        /// <param name="inDelta"></param>
        public MouseMoveArgs(double inX, double inY, double inZ, int inClicks, MouseButtons inButtons, int inDelta)
        {
            _x = inX;
            _y = inY;
            _z = inZ;
            _clicks = inClicks;
            _buttons = inButtons;
            _delta = inDelta;   
        }

        #endregion

    
        #region Properties

        /// <summary>
        /// X
        /// </summary>
        public virtual double X
        {
            get { return _x; }
            protected set { _x = value; }
        }

        /// <summary>
        /// Y
        /// </summary>
        public virtual double Y
        {
            get { return _y; }
            protected set { _y = value; }
        }

        /// <summary>
        /// Z
        /// </summary>
        public virtual double Z
        {
            get { return _z; }
            protected set { _z = value; }
        }

        /// <summary>
        /// gets the number of clicks of the button
        /// </summary>
        public virtual int Clicks
        {
            get { return _clicks; }
            protected set { _clicks = value; }
        }

        /// <summary>
        /// Gets the buttons that were pressed
        /// </summary>
        public virtual MouseButtons Buttons
        {
            get { return _buttons; }
            protected set { _buttons = value; }
        }

        /// <summary>
        /// Gets the integer delta for mouse wheeling
        /// </summary>
        public virtual int Delta
        {
            get { return _delta; }
            protected set { _delta = value; }
        }

        #endregion



    }
}
